Machine learning systems typically require large image databases that offer a relatively wide variance of images in order to robustly support computer vision based applications. Some existing commercial databases have tens of millions of images arranged in a hierarchical format where each object is depicted by thousands of images. It can often take years to capture and tag all of the necessary images for inclusion in such databases. Additionally, the efforts of many people are generally required to review and maintain the database. This approach is inefficient, expensive and not easily scalable. For example, in an object recognition system, adding a new object to the list of recognized objects would require capturing images of that object from multiple camera orientations, with different object poses, different lighting environments and varying scene backgrounds, to name just a few of the image depiction variables. Some existing systems rely on manual capture techniques to obtain the relatively massive quantities of data that are needed. Other systems employ web crawler software to search the internet and gather up image data in an ad hoc manner, wherever it can be found. Either approach, however, is unsatisfactory given the size of the image databases that are required.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.